//package com.aliyun.messagemgt;
//
//import com.aliyun.messagemgt.common.dto.response.ResultMap;
//import com.aliyun.messagemgt.fouraplugin.FouraService;
//import com.aliyun.messagemgt.entities.foura.FourAUserResponse;
//import com.aliyun.openservices.shade.com.alibaba.fastjson.JSON;
//import org.jasig.cas.client.authentication.AttributePrincipal;
//import org.jasig.cas.client.validation.Assertion;
//import org.junit.After;
//import org.junit.Before;
//import org.junit.runner.RunWith;
//import org.mockito.Mock;
//import org.mockito.Mockito;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.http.MediaType;
//import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
//import org.springframework.test.context.junit4.SpringRunner;
//import org.springframework.test.context.web.WebAppConfiguration;
//import org.springframework.test.web.servlet.MockMvc;
//import org.springframework.test.web.servlet.MvcResult;
//import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
//
//import java.util.Date;
//import java.util.Map;
//
///**
// * @author
// * @date
// */
//@RunWith(SpringRunner.class)
//@SpringBootTest
//@WebAppConfiguration
//public abstract class AbstractBaseTest extends AbstractTransactionalJUnit4SpringContextTests {
//
//    @Mock
//    private FouraService fouraRepository;
//
//    @Before
//    public void init() {
//        logger.info("开始测试...");
//    }
//
//    @After
//    public void after() {
//        logger.info("测试结束...");
//    }
//
//    public void runControllerJunitTestPost(MockMvc mockMvc, String url, Object object){
//        try {
//
//            FourAUserResponse response = new FourAUserResponse();
//            response.setUserName("1");
//            response.setUserId("1");
//            response.setOrgId("1");
//            response.setOrgCode("1");
//            ResultMap resultMap = new ResultMap(response);
//            Mockito.when(fouraRepository.getUserAndExtUserCode()).thenReturn(resultMap);
//            MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post(url)
//                    .contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
//                    .sessionAttr("_const_cas_assertion_", new Assertion() {
//                        @Override
//                        public Date getValidFromDate() {
//                            return null;
//                        }
//
//                        @Override
//                        public Date getValidUntilDate() {
//                            return null;
//                        }
//
//                        @Override
//                        public Date getAuthenticationDate() {
//                            return null;
//                        }
//
//                        @Override
//                        public Map<String, Object> getAttributes() {
//                            return null;
//                        }
//
//                        @Override
//                        public AttributePrincipal getPrincipal() {
//                            return new AttributePrincipal() {
//                                @Override
//                                public String getProxyTicketFor(String s) {
//                                    return null;
//                                }
//
//                                @Override
//                                public Map<String, Object> getAttributes() {
//                                    return null;
//                                }
//
//                                @Override
//                                public String getName() {
//                                    return "abc test";
//                                }
//                            };
//                        }
//
//                        @Override
//                        public boolean isValid() {
//                            return false;
//                        }
//                    })
//                    .content(JSON.toJSONString(object)))
//                    .andReturn();
//            logger.info("正常结果："+result.getResponse().getContentAsString());
//        }catch (Exception e){
//            logger.error("异常结果："+e.getMessage());
//        }
//    }
//
//    public void runControllerJunitTestGet(MockMvc mockMvc, String url){
//        try {
//            MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get(url)).andReturn();
//            logger.info("正常结果："+result.getResponse().getContentAsString());
//        }catch (Exception e){
//            logger.error("异常结果："+e.getMessage());
//        }
//    }
//}
//
